import numpy as np
import matplotlib.pyplot as plt
import matplotlib.cm as cm

# （1）使用 NumPy 生成两组100个点的数据
np.random.seed(0)  # 设置随机种子以得到可复现的结果
x = np.random.rand(100)  # 生成0到1之间的100个随机浮点数作为x坐标
y = np.random.rand(100)  # 生成0到1之间的100个随机浮点数作为y坐标

# （2）使用 Matplotlib 绘制这些点的散点图
fig, ax = plt.subplots()

# （3）为每个点设置不同的颜色，颜色强度基于y值的大小
# 创建一个归一化的y值数组，以用于颜色映射
norm = plt.Normalize(y.min(), y.max())
colors = cm.viridis(norm(y))  # 使用viridis颜色映射

# 绘制散点图并设置颜色
sc = ax.scatter(x, y, c=colors, edgecolors='k')  # edgecolors='k' 用于添加黑色边缘

# 添加colorbar
fig.colorbar(sc, ax=ax, label='y value')

# （4）添加图表标题和坐标轴标签
ax.set_title('Random Scatter Plot')
ax.set_xlabel('x coordinate')
ax.set_ylabel('y coordinate')

# 显示图表
plt.show()